import 'package:flutter/material.dart';

class InkWellPage extends StatelessWidget {
  const InkWellPage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('InkWell 所有属性示例')),
      body: Center(
        child: Material(
          color: Colors.grey.shade300, // 背景必须是 Material，才有水波纹效果
          child: InkWell(
            // 👇 点击事件
            onTap: () => debugPrint('点击'),
            onDoubleTap: () => debugPrint('双击'),
            onLongPress: () => debugPrint('长按'),
            onTapDown: (details) => debugPrint('按下: ${details.globalPosition}'),
            onTapUp: (details) => debugPrint('抬起: ${details.globalPosition}'),
            onTapCancel: () => debugPrint('点击取消'),

            // 👇 鼠标悬停/焦点事件（Web/Desktop）
            onHover: (hovering) => debugPrint('悬停: $hovering'),
            onFocusChange: (focused) => debugPrint('焦点变化: $focused'),

            // 👇 控制水波纹行为
            splashColor: Colors.blue.withOpacity(0.3), // 点击水波纹颜色
            highlightColor: Colors.orange.withOpacity(0.2), // 点击高亮颜色
            hoverColor: Colors.green.withOpacity(0.2), // 悬停颜色

            // 👇 InkWell 尺寸控制
            radius: 40.0, // 水波纹扩散半径
            borderRadius: BorderRadius.circular(16), // 裁剪边界圆角
            customBorder: const CircleBorder(), // 自定义边界（优先于 borderRadius）

            // 👇 行为控制
            enableFeedback: true, // 是否有点击反馈（如声音/震动）
            excludeFromSemantics: false, // 是否从可访问性语义中排除

            // 👇 焦点控制（键盘可访问性）
            focusColor: Colors.purple.withOpacity(0.2),
            focusNode: FocusNode(),
            autofocus: false,
            canRequestFocus: true,

            // 👇 内容
            child: Container(
              width: 150,
              height: 100,
              alignment: Alignment.center,
              child: const Text(
                '点击我',
                style: TextStyle(fontSize: 18),
              ),
            ),
          ),
        ),
      ),
    );
  }
}
